// import com.alibaba.druid.DbType;
// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.ast.SQLObject;
// import com.alibaba.druid.sql.ast.SQLStatementImpl;
// import com.alibaba.druid.sql.visitor.SQLASTVisitor;

// import java.util.ArrayList;
// import java.util.Collections;
// import java.util.List;
#pragma once
#include "../SQLStatementImpl.h"
#include "SQLShowStatement.h"

class SQLShowStatisticStmt : virtual public SQLStatementImpl, virtual public SQLShowStatement
{
public:
  SQLExprTableSource_ptr tableSource;
  BOOL_ptr full;
  SQLAssignItem_list_ptr partitions;
  SQLName_list_ptr columns;

  SQLShowStatisticStmt();
  SHAREDOBJECT(SQLShowStatisticStmt);

  SQLExprTableSource_ptr getTableSource();

  void setTableSource(SQLExprTableSource_ptr tableSource);

  // @Override
  void accept0(SQLASTVisitor_ptr visitor);

  // @Override
  SQLObject_list_ptr getChildren();

  BOOL_ptr isFull();

  void setFull(BOOL_ptr full);

  SQLAssignItem_list_ptr getPartitions();

  void addPartition(SQLAssignItem_ptr partition);

  SQLName_list_ptr getColumns();
};
